/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ifpb.pod.model;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.OneToOne;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 *
 * @author Diogenes
 */
@Entity
public class Noticia implements Serializable {

    private int Id;
    private Contato remetente;
    private String conteudo;
    private Date dataHora;
//    private List<Contato> destinatarios;
//    private Boolean statusLeitura;

    public Noticia() {
    }

    public Noticia(Contato remetente,String conteudo) {
        this.remetente = remetente;
//        this.destinatarios = destinatarios;
        this.conteudo = conteudo;
        this.dataHora = new Date();

//        this.statusLeitura = Boolean.FALSE;
    }

    @Id
    @GeneratedValue
    public int getId() {
        return Id;
    }

    public void setId(int Id) {
        this.Id = Id;
    }

    public String getConteudo() {
        return conteudo;
    }

    public void setConteudo(String conteudo) {
        this.conteudo = conteudo;
    }

    @Temporal(TemporalType.TIMESTAMP)
    public Date getDataHora() {
        return dataHora;
    }

    public void setDataHora(Date dataHora) {
        this.dataHora = dataHora;
    }

    @OneToOne
    public Contato getRemetente() {
        return remetente;
    }

    public void setRemetente(Contato remetente) {
        this.remetente = remetente;
    }

//    @ManyToMany(cascade = CascadeType.ALL)
//    @OneToMany()
//    public List<Contato> getDestinatarios() {
//        return destinatarios;
//    }
//
//    public void setDestinatarios(List<Contato> destinatarios) {
//        this.destinatarios = destinatarios;
//    }

//    public Boolean getStatusLeitura() {
//        return statusLeitura;
//    }
//
//    public void setStatusLeitura(Boolean statusLeitura) {
//        this.statusLeitura = statusLeitura;
//    }

//      public Boolean addDestinatario(Contato contato) {
//        if (!this.destinatarios.contains(contato)) {
//            return this.destinatarios.add(contato);
//        }
//        return Boolean.FALSE;
//
//    }

//       public Boolean removeDestinatario(Contato contato) {
//        if (!this.destinatarios.contains(contato)) {
//            return this.destinatarios.remove(contato);
//        }
//        return Boolean.FALSE;
//    }

    @Override
    public String toString() {
        return dataHora + " - " + remetente + " " + conteudo;
    }
}
